//
//  Status.swift
//  sinaOnceAgain
//
//  Created by 王相超 on 16/2/20.
//  Copyright © 2016年 chuanzhi. All rights reserved.
//

import UIKit

class Status: NSObject {
    
    //	微博ID  Int 和OC中 NSInteger是一样  永远匹配当前机型的位数
    //iPhone 4 ~ iPhone 5c 都是32位的机型  在这些机型上面 对应的微博id 会被截取
    //iPhone 5s ~ 最新的机型 都是64的机型
    var id: Int64 = 0
    
    //微博创建时间
    var created_at: String?
    
    //微博正文
    var text: String?
    
    //微博来源
    var source: String?
    
    //用户模型属性
    var user: User?
    
    //转发微博字段
    var retweeted_status: Status?
    
    //将 pic_urls内的字典遍历  并且取出对应的值 转换为  NSURL类型 添加到这个属性类型数组中
    var imageURLs: [NSURL]?
     
    //配图视图数组的属性
    var pic_urls: [[String : String]]?{
        
        didSet{
            
            guard let urls = pic_urls else {
                return
            }
            
            //如果urls不为空  需要实例化  NSURL类型的图片数组
            imageURLs = [NSURL]()
            
            //遍历
            for item in urls {
                
                let urlString = item["thumbnail_pic"]
                
                let str = urlString?.stringByReplacingOccurrencesOfString("thumbnail", withString: "bmiddle")
                
                let url = NSURL(string: str!)!
                
                //将对象添加到数组中
                imageURLs?.append(url)
            }
            
        }
        
    }
    
    
    
    //使用KVC设置初始值
    init(dict: [String: AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
     
        if key == "user" {
            
            //将AnyObject 转化为  字典对象
            if let dict = value as? [String: AnyObject] {
                
                // 对user做字典转模型的操作
                user = User(dict: dict)
                
                return
            }
        }
        
        if key == "retweeted_status" {
            
            //将AnyObject 转化为  字典对象
            if let dict = value as? [String: AnyObject] {
                
                // 对user做字典转模型的操作
                retweeted_status = Status(dict: dict)
                
                return
            }
        }
            super.setValue(value, forKey: key)
        
    }
    
    //过滤
    override func setValue(value: AnyObject?, forUndefinedKey key: String) { }

}
